/////////////////
///INICIALIZAR///
/////////////////
var editIndex = undefined;

var codigoCiudadFila = null;

$(window).load(function() {
	fnCargarTiposCuentas();
	fnCargarPaises();

	codigoCiudadFila = PAIS_USUARIO;
	fnCargarTablaCuentas();
});

//////////////////////////////////
///FUNCION PARA CARGAR LA TABLA///
//////////////////////////////////
function fnCargarTablaCuentas(){

	$("#filaVacia").remove();

	var widthNombreCuenta = 250;
	var widthTipoCuenta = 130;
	var widthNombrePais = 130;
	var widthNombreCiudad = 130;
	var widthEmail = 250;
	var widthTelefono = 100;
	var widthFax = 120;
	
	$("#listadoCuentas").attr("style","width:900px;");
	
	$('#tablaCuentas').datagrid({  
		url:RUTA_CONTEXTO+'/cuentas/listar_Cuentas',
		title:'Listado de Cuentas',
		frozenColumns:[[
		    {field:'chk',checkbox:true},
		    {field:'id',hidden:true},
		    {field:'nombreCuenta',title:'Cuenta',width:widthNombreCuenta,align:'center',sortable:true}    
		]],
	    columns:[[
		    {field:'idTipoCuenta', title:'Tipo',width:widthTipoCuenta,align:'center',
		    	formatter:function(value,row){
                    return row.descripcionTipoCuenta;
                },
                editor:{
	                type:'combobox',
	                options:{
	                    valueField:'id',
	                    textField:'descripcion',
	                    data:DataTiposCuentas,
	                    required:false}
	            }
		    },
		    {field:'codigoPais', title:'Pais',width:widthNombrePais,align:'center',
		    	formatter:function(value,row){
                    return row.nombrePais;
                },
                editor:{
	                type:'combobox',
	                options:{
	                    valueField:'id',
	                    textField:'descripcion',
	                    data:DataPaises,
	                    required:false,
	                    value:PAIS_USUARIO,
	                    onChange:function(newValue,oldValue){
	                    	if(newValue!=undefined && newValue!=null){
	                    		codigoCiudadFila = newValue;
	                    	}
	                    }
	                }
	            }
		    },
		    {field:'idCiudad', title:'Ciudad',width:widthNombreCiudad,align:'center',
		    	formatter:function(value,row){
                    return row.nombreCiudad;
                },
                editor:{
	                type:'combobox',
	                options:{
	                    valueField:'id',
	                    textField:'descripcion',
	                    url:RUTA_CONTEXTO + '/ajax/cargar_ciudades?codigoPais='+codigoCiudadFila,
	                    required:false,
	                    onChange:function(newValue,oldValue){
	                    }
	                }
	            }
		    },
		    
		    {field:'direccion', title:'Direccion',align:'center'},
		    {field:'email', title:'E-mail',width:widthEmail,align:'center'},
		    {field:'telefono', title:'Telefono',width:widthTelefono,align:'center'},
		    {field:'fax', title:'Fax',width:widthFax,align:'center'}
	    ]],
	    toolbar: [
	    {iconCls: 'icon-add',
	      text:'Agregar',
	      handler: function(){fnAgregarFila();}
	    },'-',
	    {iconCls: 'icon-edit',
		 text:'Editar',
		 handler: function(){alert('edit');}
		},'-',{
		  iconCls: 'icon-remove',
		  text:'Eliminar',
		  handler: function(){alert('help');}
		}],
	    pagination:true,
	    remoteSort:true,
	    rownumbers:true,
	    singleSelect:true,
	    checkOnSelect:false,
	    selectOnCheck:false,
	    onLoadSuccess:function(data){
	    	editIndex = undefined;
	    	codigoCiudadFila = PAIS_USUARIO;
	    },
	    pageSize:10,
	    pageList:[10,15,20],
	    sortName:'nombreCuenta',
	    sortOrder:'asc'
	});	
}

/////////////////////////////////////////
///FUNCIONES PARA EDITAR LOS REGISTROS///
/////////////////////////////////////////
function fnValidarEdicionFila(){
	if (editIndex == undefined){
		return true;
	}
	
    if ($('#tablaCuentas').datagrid('validateRow', editIndex)){
        var ed = $('#tablaCuentas').datagrid('getEditor',{index:editIndex,field:'id'});
        var tipoCuenta = $(ed.target).combobox('getText');
        $('#tablaCuentas').datagrid('getRows')[editIndex]['descripcionTipoCuenta'] = tipoCuenta;
        $('#tablaCuentas').datagrid('endEdit', editIndex);
        editIndex = undefined;
        return true;
    } else {
        return false;
    }
}

function fnAgregarFila(){
	if (fnValidarEdicionFila()){
        $('#tablaCuentas').datagrid('appendRow',{codigoPais:PAIS_USUARIO});
        editIndex = $('#tablaCuentas').datagrid('getRows').length-1;
        $('#tablaCuentas').datagrid('selectRow',editIndex).datagrid('beginEdit',editIndex);
    }
}




function fnAbrirDialogoNuevo(){
	$('#dialogoCuenta').removeAttr("style");
	$('#dialogoCuenta').dialog({  
	    title: 'Registro de Cuentas',  
	    width: 400,  
	    height: 200,  
	    closed: false,  
	    cache: false,  
	    modal: true,
	    buttons:[{
			text:'Guardar',
			iconCls:"icon-ok",
			handler:function(){}
		},{
			text:'Cancelar',
			iconCls:"icon-cancel",
			handler:function(){$('#dialogoCuenta').dialog('close');}
		}]
	}); 
}